
// 解压
function unzip(b64Data) {
    if (b64Data.indexOf('-') >= 0 || b64Data.indexOf('_') >= 0) {
        // 将标准Base64中的“+”和“/”分别改成了“-”和“_”，这样就免去了在URL编解码和数据库存储时所要作的转换
        b64Data = b64Data.replaceAll("-", "+").replaceAll("_", "/");
    }
    let strData = atob(b64Data);
    const charData = strData.split('').map(function (x) {
        return x.charCodeAt(0);
    });
    const binData = new Uint8Array(charData);
    const data = pako.inflate(binData);
    strData = String.fromCharCode.apply(null, new Uint16Array(data));
    return decodeURIComponent(strData);
}

// 压缩
function zip(str) {
    const binaryString = pako.gzip(encodeURIComponent(str), {to: 'string'})
    const b64Data = btoa(binaryString)
    // 将标准Base64中的“+”和“/”分别改成了“-”和“_”，这样就免去了在URL编解码和数据库存储时所要作的转换
    return b64Data.replaceAll("\\+", "-").replaceAll("/", "_");
}